﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Web.Caching;
using Com.AlbLab.GEP.Domain.Entities;
using Com.AlbLab.GEP.Services.Base;
using Com.AlbLab.GEP.Cache;
using Com.AlbLab.GEP.Services.Interface;
using Com.AlbLab.GEP.Domain;

namespace Com.AlbLab.GEP.Services.Impl
{
    public class GEP_DATIM02Services : BaseClassic, IGEP_DATIM02Services
    {
        //Dictionary<decimal, GEP_DATID01> getListaUtenti();
        //GEP_DATID01 getPraticaByID(decimal userId);
        //GEP_DATID01 getUtenteByUsername(string username);
        //GEP_DATID01 updatePratica(GEP_DATID01 e);
        public GEP_DATIM02 getPraticaByID(decimal praticaId)
        {
            GEP_DATIM02 e;
            e = new GEP_DATIM02();
            e = base.DbProvider.DaoImpl.PraticaM02Dao.GetById(praticaId);
            e.Gep_testata = base.DbProvider.DaoImpl.PraticaDao.GetById(praticaId);
            //e.Gep_testata = base.DbProvider.DaoImpl.PraticaDao.GetById(praticaId);
            //  e.
            //base.DbProvider.DaoImpl.PraticaD01Dao.GetById(praticaId);
            return e;
        }

        public GEP_DATIM02 insertPratica(GEP_DATIM02 e)
        {
            base.DbProvider.DaoImpl.PraticaDao.Insert(e.Gep_testata);
            base.DbProvider.DaoImpl.PraticaM02Dao.Insert(e);
            return e;
        }

        //void deleteUtente(decimal e);
        //#region IGestionePraticheServices Members

        //public GEP_DATID01 getFaseById(decimal FaseId)
        //{
        //    GEP_FASE t=base.DbProvider.DaoImpl.FasePraticaDao.GetById(FaseId);
        //    return t;
        //}

        //public GEP_DATID01 closeFase(GEP_DATID01 oldFase)
        //{
        //    throw new NotImplementedException();
        //}

        //public GEP_DATID01 insertPratica(GEP_DATID01 e)
        //{
        //    //e.Password = "password";
        //    //base.DbProvider.DaoImpl.UtenteDao.Insert(e);
        //    return e;
        //}

        //public GEP_DATID01 updateUtente(GEP_DATID01 e)
        //{
        //    //base.DbProvider.DaoImpl.UtenteDao.Update(e);
        //    return e;
        //}

        //public Info updateAppuntamento(ref GEP_DATID01 fase)
        //{
        //    Info i = null;
        //    base.DbProvider.StartTransaction(this.GetType());
        //    GEP_FASE old = base.DbProvider.DaoImpl.FasePraticaDao.GetAndLock(fase.Fas_Id);
        //    if (old.Fas_Stato.Equals("98") || old.Fas_Stato.Equals("99"))
        //    {
        //        i = new Info();
        //        i.AddMessage("ATTENZIONE: La pratica può soltanto essere letta", LivelloMessaggio.WARNING);
        //        fase = old;
        //    }
        //    else
        //    {
        //        System.DateTime mindate = old.Fas_Dt_Inilav.Value;
        //        if (fase.Fas_Dtora_App.HasValue && fase.Fas_Dtora_App < mindate)
        //            i.AddMessage("Data dell'appuntamento troppo vecchia", LivelloMessaggio.WARNING);


        //        old.Fas_Dtora_App = fase.Fas_Dtora_App;
        //        old.Fas_Dtora_App_Proasm = fase.Fas_Dtora_App_Proasm;
        //        old.Fas_Dtora_App_Procli = fase.Fas_Dtora_App_Procli;
        //        base.DbProvider.DaoImpl.FasePraticaDao.Update(old);
        //        base.DbProvider.EndTransaction(this.GetType());
        //        fase = old;
        //    }
        //    return i;
        //}

        //public Info updateStatoFase(ref GEP_DATID01 fase)
        //{
        //    Info i = null;
        //    //base.DbProvider.StartTransaction(this.GetType());
        //    GEP_FASE old = base.DbProvider.DaoImpl.FasePraticaDao.GetAndLock(fase.Fas_Id);
        //    if (old.Fas_Stato.Equals("98") || old.Fas_Stato.Equals("99"))
        //    {
        //        i = new Info();
        //        i.AddMessage("ATTENZIONE: La pratica può soltanto essere letta", LivelloMessaggio.WARNING);
        //        fase = old;
        //    }
        //    else
        //    {
        //        old.Fas_Note = fase.Fas_Note;
        //        if(old.Fas_Stato.Equals("1") && fase.Fas_Stato.Equals("2"))
        //            old.Fas_Dt_Inilav = System.DateTime.Now;
        //        old.Gep_ana_statof = fase.Gep_ana_statof;
        //        //old.Fas_Dt_Finelav = fase.Fas_Dt_Finelav;
        //        //old.Fas_Dtora_App_Procli = fase.Fas_Dtora_App_Procli;
        //        base.DbProvider.DaoImpl.FasePraticaDao.Update(old);
        //        //base.DbProvider.EndTransaction(this.GetType());
        //        fase = old;
        //    }
        //    return i;
        //}

        //public Info updateRichiestaDocumentaizoneFase(ref GEP_DATID01 fase)
        //{
        //    Info i = null;
        //    base.DbProvider.StartTransaction(this.GetType());
        //    GEP_FASE old = base.DbProvider.DaoImpl.FasePraticaDao.GetAndLock(fase.Fas_Id);
        //    if (old.Fas_Stato.Equals("98") || old.Fas_Stato.Equals("99"))
        //    {
        //        i = new Info();
        //        i.AddMessage("ATTENZIONE: La pratica può soltanto essere letta", LivelloMessaggio.WARNING);
        //        fase = old;
        //    }
        //    else
        //    {
        //        old.Fas_Dt_Atto_Rich = fase.Fas_Dt_Atto_Rich;
        //        old.Fas_Dt_Atto_Ott = fase.Fas_Dt_Atto_Ott;
        //        base.DbProvider.DaoImpl.FasePraticaDao.Update(old);
        //        base.DbProvider.EndTransaction(this.GetType());
        //        fase = old;
        //    }
        //    return i;
        //}

        //public Info updateSospensioneFase(ref GEP_DATID01 fase)
        //{
        //    Info i = null;
        //    base.DbProvider.StartTransaction(this.GetType());
        //    GEP_FASE old = base.DbProvider.DaoImpl.FasePraticaDao.GetAndLock(fase.Fas_Id);
        //    if (old.Fas_Stato.Equals("98") || old.Fas_Stato.Equals("99"))
        //    {
        //        i = new Info();
        //        i.AddMessage("ATTENZIONE: La pratica può soltanto essere letta", LivelloMessaggio.WARNING);
        //        fase = old;
        //    }
        //    else
        //    {
        //        old.Fas_Dt_Inisosp = fase.Fas_Dt_Inisosp;
        //        old.Fas_Dt_Finesosp = fase.Fas_Dt_Finesosp;
        //        old.Gep_ana_motstafase = fase.Gep_ana_motstafase;
        //        base.DbProvider.DaoImpl.FasePraticaDao.Update(old);
        //        base.DbProvider.EndTransaction(this.GetType());
        //        fase = old;
        //    }
        //    return i;
        //}


        
       // #endregion
    }
}